// 创建store对象  将干活的reducer 和action 建立连接
import { createStore, applyMiddleware } from 'redux'

// 导入所有的reducer
import reducer from './reducers/index'

// redux-thunk 插件 可以让 store 知道action 传过来的是 函数(返回值是一个对象 里面有type和data)
// store 调用不同的action函数 拿到不同的返回值 然后 会传给不同的reducer
// reducer内部会进行数据的处理 然后默认导出
// index函数会进行进一步的加工处理
import thunk from 'redux-thunk'

import { composeWithDevTools } from 'redux-devtools-extension'

export default createStore(reducer, composeWithDevTools(applyMiddleware(thunk)))

// 先创建container文件夹  和redux 文件夹
// 让容器组件 导入到app组件中 写好静态页面
// 走到redux文件夹中  进行开发
// 先开发 instance 文件 书写具体的操作类型  按需导出
// 然后进入action文件夹进行开发 书写说有的方法 按需导出
// 然后进入 reducer 文件夹进行开发  默认导出 处理好的数据
// 然后进入store 文件夹 创建store对象 （createStore ） 导入所有的reducer函数
// 利用applyMiddleWare 中间件以及  redux-thunk 插件  处理action传过来的函数
// 进入index入口文件 将store文件 provider容器  给app组件包裹provider组件 并传递store
// 进入container容器文件内  导入action方法 导入 connect 组件  映射对象 和方法
// 在UI组件内  通过this.props. 调用容器的属性和方法
// 在store文件中 引入 redux 拓展使用插件 redux-devtools-extension的 composeWithDevTools方法  包裹所有的action方法
